package study_1;

/**
 * 多线程编程的优势和风险
 *      1.优势
 *          1）提高系统的吞吐率（效率）
 *              当一个线程因为I/O操作而处于等待时，其他线程仍然可以执行其操作。
 *          2）提高响应性
 *              一个请求的处理慢了并不会影响其他请求的处理。
 *          3）充分利用多核处理器资源
 *          4）最小化对系统资源的使用
 *              多个线程相比多个进程进行变成来说，节约了对系统资源的使用
 *          5）简化了程序的结构
 *      2.风险
 *          1）线程安全问题
 *              多个线程共享数据的时候，如果没有采取相应的并发访问控制措施，那么久可能产生数据一致性的问题，如：
 *                  1> 读取脏数据 （过期的数据）
 *                  2> 丢失更新 （丢失更新）
 *          2）线程活性问题
 *              一个线程有多个生命周期，我们期望程序运行时线程的状态是Running，
 *              但实际上，代码编写不当可能导致某些线程一直处于等待其他线程释放锁的状态；
 *              如：
 *                  线程T1拥有L1，并试图去获得锁L2；而线程T2拥有L2，并试图去获得锁L1
 *          3）上下文切换：处理器从执行一个线程转向执行另一个线程的过程
 *              由于处理器资源的稀缺性，上下文切换可以被看做多线程编程的必然副产物，它增加了系统的消耗，不利于系统的吞吐率。
 *          4）可靠性
 *              多线程以方便可以有利于可靠性：
 *                  如：某个线程意外提前终止了，但不影响其他线程继续运行
 *              另一方面：
 *                  线程总是存在在进程中；
 *                  如果这个进程意外中止，该进程中所有的线程也就随之无法继续运行
 */
public class Thread10 {
}
